﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CSDL_NC_07.BUS;

namespace CSDL_NC_07.GUI
{
    public partial class frm_main : Form
    {
        private BACSI bacSi = null;
        private THUNGAN thuNgan = null;
        private bool loaiTaiKhoanDangNhap = false; //true => bác sĩ, false => thu ngân

        public frm_main()
        {
            InitializeComponent();
        }

        private void frm_main_Load(object sender, EventArgs e)
        {
            //Load man hinh dang nhap len dau tien
            bacSi = null;
            thuNgan = null;
            sttStrip_StatusLabel.Text = "...";
            HienThiManHinhDangNhap();
        }

        #region btn_logOut_Click()
        private void btn_logOut_Click(object sender, EventArgs e)
        {
            sContainer_main.Panel2.Controls.Clear();
            bacSi = null;
            thuNgan = null;
            btn_home.Visible = false;
            btn_logOut.Visible = false;
            lblTenNhanVien.Visible = false;
            sttStrip_StatusLabel.Text = "...";

            HienThiManHinhDangNhap();
        }
        #endregion

        #region btn_home_Click()
        private void btn_home_Click(object sender, EventArgs e)
        {
            sttStrip_StatusLabel.Text = "...";
            HienThiManHinhQuanLy();
        }
        #endregion

        #region Hiển thị màn hình đăng nhập
        private void HienThiManHinhDangNhap()
        {
            //Khởi tạo control màn hình đăng nhập
            GUI.other.MHDangNhap mhDangNhap = new GUI.other.MHDangNhap();
            mhDangNhap.Dock = DockStyle.Fill;

            mhDangNhap.DangNhapThuNganThanhCong += MHDangNhap_DangNhapThuNganThanhCong;
            mhDangNhap.DangNhapBacSiThanhCong += MHDangNhap_DangNhapBacSiThanhCong;
            mhDangNhap.DangXuat += MHDangNhap_DangXuat;

            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhDangNhap);
        }


        #region Các event của màn hình đăng nhập

        #region đăng nhập thành công
        void MHDangNhap_DangNhapThuNganThanhCong(object sender, EventArgs e)
        {
            thuNgan = (sender as THUNGAN);

            lblTenNhanVien.Text = thuNgan.TenThuNgan;
            lblTenNhanVien.Visible = true;
            btn_home.Visible = true;
            btn_logOut.Visible = true;
            loaiTaiKhoanDangNhap = false;

            HienThiManHinhQuanLy();
        }

        void MHDangNhap_DangNhapBacSiThanhCong(object sender, EventArgs e)
        {
            bacSi = (sender as BACSI);

            lblTenNhanVien.Text = bacSi.TenBacSi;
            lblTenNhanVien.Visible = true;
            btn_home.Visible = true;
            btn_logOut.Visible = true;
            loaiTaiKhoanDangNhap = true;

            HienThiManHinhQuanLy();
        }
        #endregion

        #region đăng xuất
        void MHDangNhap_DangXuat(object sender, EventArgs e)
        {
            this.Close();
        }
        #endregion

        #endregion
        #endregion

        #region Hiển thị màn hình quản lý
        private void HienThiManHinhQuanLy()
        {
            //Hiển thị màn hình quản lý
            other.MHQuanLy mhQuanLy = new other.MHQuanLy();
            //mhQuanLy.nhanVien = nhanVien;
            mhQuanLy.Dock = DockStyle.Fill;
            mhQuanLy.loaiTaiKhoanDangNhap = loaiTaiKhoanDangNhap;
            mhQuanLy.ClickButton += MHQuanLy_ClickButton;

            sttStrip_StatusLabel.Text = "...";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhQuanLy);
        }
        #endregion




        //-------------------------------
        //-------------------------------
        //-------------------------------
        //mở cái này ra xem
        //-------------------------------
        //-------------------------------
        //-------------------------------
        #region xử lý sự kiện click button trên màn hình quản lý
        void MHQuanLy_ClickButton(object sender, EventArgs e)
        {
            //Tạo thêm usercontrol, mỗi usercontrol là 1 màn hình truy vấn
            //Cách add usercontrol xem hàm DEMO_HienThiManHinhThemMonAn
            switch ((sender as string))
            {
                //case "btnTruyVan1":
                    //HienThiManHinhXuLyTruyVan1();
                    //break;
                //case "btnTruyVan2":
                    //HienThiManHinhXuLyTruyVan2();
                    //break;
                //case "btnTruyVan3":
                    //HienThiManHinhXuLyTruyVan3();
                    //break;
                case "btnTruyVan4":
                    HienThiManHinhXuLyTruyVan4();
                    break;
                case "btnTruyVan5":
                    HienThiManHinhXuLyTruyVan5();
                    break;
                case "btnTruyVan6":
                    HienThiManHinhXuLyTruyVan6();
                    break;
                case "btnTruyVan7":
                    HienThiManHinhXuLyTruyVan7();
                    break;
                default:
                    sttStrip_StatusLabel.Text = "Nút này không có hoạt động xử lý!.";
                    break;
            }
        }

        #endregion

        #region HienThiManHinhXuLyTruyVan5()
        private void HienThiManHinhXuLyTruyVan5()
        {
            other.MHThemHSNV _mhThemHSNV = new other.MHThemHSNV();
            _mhThemHSNV.Dock = DockStyle.Fill;
            //sttStrip_StatusLabel.Text = "abcgds";
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(_mhThemHSNV);
        }
        #endregion

        #region HienThiManHinhXuLyTruyVan6()
        private void HienThiManHinhXuLyTruyVan6()
        {
            other.MHThemHDTU _mhThemHDTU = new other.MHThemHDTU(thuNgan);
            _mhThemHDTU.Dock = DockStyle.Fill;
            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(_mhThemHDTU);
        }
        #endregion

        #region HienThiManHinhXuLyTruyVan7()
        private void HienThiManHinhXuLyTruyVan7()
        {
            other.MHThemHDXV mhThemHDXV = new other.MHThemHDXV();
            mhThemHDXV.thuNgan = thuNgan;
            mhThemHDXV.Dock = DockStyle.Fill;
            mhThemHDXV.LapPhieuXuatVienThanhCong += mhThemHDXV_LapPhieuXuatVienThanhCong;

            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhThemHDXV);
        }

        void mhThemHDXV_LapPhieuXuatVienThanhCong(object sender, EventArgs e)
        {
            HienThiManHinhQuanLy();
        }
        #endregion

        #region HienThiManHinhXuLyTruyVan4()
        private void HienThiManHinhXuLyTruyVan4()
        {
            other.MHXemTieuSuBenh mhXemTieuSuBenh = new other.MHXemTieuSuBenh();
            mhXemTieuSuBenh.Dock = DockStyle.Fill;

            sContainer_main.Panel2.Controls.Clear();
            sContainer_main.Panel2.Controls.Add(mhXemTieuSuBenh);
        }
        #endregion



        private void DEMO_HienThiManHinhThemMonAn()
        {
            //-- khai báo usercontrol
            //other.MHThemMonAn _mhThemNL = new other.MHThemMonAn();
            //-- cấu hình cho usercontrol hiển thị Fill
            //_mhThemNL.Dock = DockStyle.Fill;


            //sttStrip_StatusLabel.Text = "...";
            //-- add usercontrol vào panel2 => clear các control trước đó đi
            //sContainer_main.Panel2.Controls.Clear();
            //-- add usercontrol vào
            //sContainer_main.Panel2.Controls.Add(_mhThemNL);
        }
    }
}
